Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour Wimbledon - London Porto Challenger Mallorca Challenger U.S. Open - New York Malaga Challenger Alicante Challenger Orleans Challenger Hamburg Challenger Brest Challenger Matsuyama Challenger Ostrava Challenger M25 Vale do Lobo M25 Loule Oeiras 3 Challenger Millennium Estoril Open - Estoril M25 Valldoreix M25 Sabadell Oeiras 4 Challenger M25 Idanha-a-Nova M25 Mungia-Laukariz M25 Elvas M25 Satu Mare M25 Setubal M25 Castelo Branco M25 Idanha-a-Nova M25 Roda de Bara M25 Bakio M25 Porto Dobrich 2 Challenger Porto 2 Challenger Lisbon Challenger Braga Challenger M25 Sintra M25 Sintra M25 Monastir M25 Vila Real de Santo Antonio Oeiras 2 Challenger M25 Faro M25 Vila Real de Santo Antonio M25 Vale do Lobo Oeiras 3 Challenger M25 Setubal M25 Vale do Lobo Grodzisk Mazowiecki Challenger Maia Challenger Oeiras 1 Challenger Brasov Challenger Milan Challenger Tampere Challenger Zug Challenger Cassis Challenger Porto 2 Challenger Poznan Challenger Iasi Challenger Bunschoten Challenger Porto Challenger Sofia 2 Challenger Todi Challenger Seville Challenger Seoul Challenger Lisbon Challenger Braga Challenger Shenzhen Challenger France F3 Nigeria F2 Algeria F1 France F2 Algeria F2 Nigeria F1 Saudi Arabia F1 Saudi Arabia F2 Tunisia F1 Tunisia F2 Morocco F3 Iran F1 Iran F2 Tunisia F3 Italy F22 France F13 Italy F23 France F19 France F20 Belgium F2 Tunisia F4 Tunisia F5 Tunisia F6 UAE F1 Qatar F1 Qatar F2 Qatar F3 Portugal F2 Portugal F3 France F5 Morocco F1 Morocco F2 Italy F13 Tunisia F1 Tunisia F2 Tunisia F3 Italy F12 Iran F1 France F9 France F12 Iran F2 France F17 Tunisia F4 Tunisia F5 China F1 China F2 Tunisia F1 Netherlands F5 Netherlands F6 Morocco F7 Spain F35 Egypt F4 France F2 France F3 Spain F39 Poland F1 Poland F2 Sudan F1 Sudan F2 Colombia F1 Colombia F2 Portugal F2 Italy F5 Great Britain F7 Kazakhstan F4 Portugal F4 Portugal F5 Egypt F2 Egypt F3 France F6 France F7 Portugal F3 Spain F25 Portugal F4 Portugal F5 Brazil F31 Brazil F32 Spain F19 Portugal F2 Portugal F3 Portugal F4 Egypt F2 Egypt F3 Egypt F4 Portugal F5 Portugal F6 Portugal F7 Spain F26 Spain F27 France F17 France F18 France F19 Spain F33 Portugal F9 Portugal F10 Portugal F11 Tunisia F4 Egypt F32 Egypt F33 Spain F41 Spain F42 Turkey F49 Turkey F50 Portugal F1 Portugal F2 Portugal F3 Turkey F7 Turkey F8 Tunisia F5 Turkey F9 Portugal F4 Portugal F5 Tunisia F6 Portugal F6 Belgium F2 Belgium F3 Belgium F4 Belgium F5 Spain F21 Romania F2 Romania F13 Portugal F8 Portugal F9 Tunisia F7 Portugal F10 Portugal F11 Turkey F42 Turkey F43 Tunisia F3 Tunisia F4 Portugal F3 Morocco F2 Morocco F3 Italy F6 Portugal F4 Portugal F7 Mozambique F1 Mozambique F2 Spain F18 Belgium F13 Spain F28 France F1 Egypt F36 Egypt F37 Egypt F38 Egypt F39 Turkey F5 Turkey F6 Turkey F7 Portugal F3 Egypt F9 Egypt F10 Czech Republic F4 Egypt F5 Portugal F1 France F3 Romania F15 Great Britain F3 Turkey F47 Turkey F48 Great Britain F4 Egypt F1 (Sharm El Sheikh) Egypt F4 (Sharm El Sheikh) Egypt F5 (Sharm El Sheikh) Egypt F6 (Sharm El Sheikh) Portugal F5 (Quinta Da Marinha) Portugal F6 (Porto) Portugal F7 (Carcavelos) Egypt F1 Egypt F2 Egypt F3 Ukraine F1 (Cherkassy) Ukraine F2 (Cherkassy) Romania F2 (Bacau) Tunisia F1 Tunisia F2 Morocco F4 Tunisia F22 (Hammamet) Portugal F10 (Torres Vedras) Portugal F11 (Povoa de Varzim) Portugal F12 (Idanha-A-Nova) Turkey F2 Kuwait F2 Portugal F13 (Idanha-A-Nova) Tunisia F1 Austria F4 Austria F5 Austria F6 Romania F15 Tunisia F27 (Hammamet) Tunisia F28 (Hammamet) Tunisia F29 (Hammamet) Tunisia F30 (Hammamet) France F15 France F17 France F18 United Arab Emirates F1 United Arab Emirates F2 Morocco F1 Morocco F2 Spain F11 Spain F15 Spain F16 Kuwait F1 Kuwait F2 Tunisia F2 Tunisia F3 Georgia F1 Georgia F2 Portugal F1 (Vale Do Lobo) Portugal F3 (Loule) Portugal F5 (Vilamoura) Portugal F6 (Lisbon) Portugal F7 (Porto) Portugal F8 (Cascais) Tunisia F23 (Hammamet) France F19 Portugal F14 (Sintra) Portugal F15 (Sintra) Morocco F1 Morocco F2 Spain F7 Italy F2 Italy F3 France F6 Italy F8 Tunisia F1 Tunisia F2 M25 Tavira Spain F29 Spain F36 Portugal F5 Netherlands F1 Challenger Ford de Cherbourg - Cherbourg Tunis Open - Tunis Togliatti Cup - Togliatti Mordovia Cup 2005 - Saransk Ethias Tennis Trophy - Mons The LTA Men's Challenger - Southampton Nossa Caixa Tennis Cup - Sao Paulo Tunis Open 2006 - Tunis Tunis Open 2007 - Tunis Tunis Open - Tunis Timisoara Challenger - Timisoara Open D'Orleans - Orleans Tanger Challenger Rabat Challenger Marrakech Challenger Tunis Challenger Saransk Challenger San Sebastian Challenger Como Challenger Tulsa Challenger Quito Challenger Sacramento Challenger Genova Challenger Tanger Challenger Meknes Challenger Marrakech Challenger Monza Challenger Tunis Challenger Alessandria Challenger San Benedetto Challenger Bucaramanga Challenger Rabat Challenger Marrakech Challenger Santos Challenger Cremona Challenger Penza Challenger Astana Challenger Samarkand Challenger Istanbul Challenger Izmir Challenger Mons Challenger Rennes Challenger Eckental Challenger Geneva Challenger Bratislava Challenger Kazan Challenger Quimper Challenger Bergamo Challenger Kyoto Challenger Pingguo Challenger Barletta Challenger Tunis Challenger Recanati Challenger Istanbul Challenger Izmir Challenger Orleans Challenger Tashkent Challenger Seoul Challenger Geneva Challenger Sao Leopoldo Challenger Rimouski Challenger San Luis Potosi Challenger Santos Challenger Sao Paulo Challenger Tunis Challenger Arad Challenger Kosice Challenger Timisoara Challenger Binghamton Challenger Guimaraes Challenger Lexington Challenger Segovia Challenger Aptos Challenger Shanghai Challenger Istanbul Challenger Izmir Challenger Fergana Challenger Tashkent Challenger Geneva Challenger Maui Challenger Chitre Challenger Dallas Challenger Morelos Challenger Guadalajara Challenger Itajai Challenger Sao Paulo Challenger Santos Challenger Tunis Challenger Rome Challenger Bordeaux Challenger Mestre Challenger Caltanissetta Challenger Winnetka Challenger Granby Challenger Segovia Challenger Istanbul Challenger Izmir Challenger Ortisei Challenger Knoxville Challenger Champaign Challenger Casablanca Challenger New Delhi Challenger Kolkata Challenger Mersin Challenger Turin Challenger Aix En Provence Challenger Eskisehir Challenger Manchester Challenger Ilkley Challenger Todi Challenger Tampere Challenger Segovia Challenger Aptos Challenger Manerbio Challenger Izmir Challenger Campinas Challenger Porto Alegre Challenger Mons Challenger Sao Paulo Challenger Rennes Challenger Charlottesville Challenger Knoxville Challenger Champaign Challenger Bangkok Challenger Bangkok Challenger Manila Challenger Puebla Challenger Guadalajara Challenger Leon Challenger Le Gosier Challenger Napoli Challenger Barletta Challenger Turin Challenger Rome Challenger Samarkand Challenger Mestre Challenger Furth Challenger Caltanissetta Challenger Perugia Challenger Bastad Challenger Poznan Challenger Tampere Challenger Prague Challenger Lexington Challenger Cordenons Challenger Manerbio Challenger Istanbul Challenger Ho Chi Minh City Challenger Bangkok Challenger Aix En Provence Challenger Bordeaux Challenger Surbiton Challenger Lisbon Challenger Milan Challenger Gatineau Challenger Aptos Challenger Istanbul Challenger Izmir Challenger Brest Challenger Mouilleron-Le-Captif Challenger Canberra Challenger Cherbourg Challenger Zhuhai Challenger Shenzhen Challenger Qujing Challenger Tunis Challenger Braga Challenger Mestre Challenger Blois Challenger Zhangjiagang Challenger Shanghai Challenger Kaohsiung Challenger Almaty Challenger Tashkent Challenger Bratislava Challenger Bangalore Challenger Pune Challenger Lille Challenger Sophia Antipolis Challenger Braga Challenger Lisbon Challenger Jerusalem Challenger Almaty Challenger Shymkent Challenger Bratislava Challenger Milan Challenger Amersfoort Challenger Prague Challenger Sopot Challenger Manerbio Challenger Vancouver Challenger L'Aquila Challenger Baotou Challenger Jinan Challenger Cassis Challenger Kaohsiung Challenger Glasgow Challenger Orleans Challenger Nur-Sultan Challenger Ningboo Challenger Liuzhou Challenger Shenzhen Challenger Helsinki Challenger Bangkok Challenger Bangkok Challenger Bengalaru Challenger Bergamo Challenger Nur-Sultan Challenger Prague Challenger Prague II Challenger Ostrava Challenger Prostejov Challenger Iasi Challenger Sibiu Challenger Split Challenger Barcelona Challenger Alicante Challenger Lisbon Challenger Istanbul Challenger Marbella Challenger Parma Challenger Sao Paulo Challenger Maia Challenger Istanbul Challenger Biella 1 Challenger Biella 2 Challenger Nur-Sultan 1 Challenger Nur-Sultan 2 Challenger Belgrade Challenger Ostrava Challenger Prague Challenger Zagreb Challenger Oeiras 3 Challenger Biella 7 Challenger Bratislava Challenger Forli Challenger Milan Challenger Porto Challenger Braunschweig Challenger Nur-Sultan 3 Challenger Nur-Sultan 4 Challenger Segovia Challenger Liberec Challenger San Marino Challenger Verona Challenger Barletta Challenger Mallorca Challenger Banja Luka Challenger Kyiv Challenger Braga Challenger Lisbon Challenger Mouilleron-Le-Captif Challenger Alicante Challenger Bogota Challenger Brest Challenger Las Vegas Challenger Tenerife Challenger Charlottesville Challenger Bratislava Challenger Knoxville Challenger Helsinki Challenger Champaign Challenger Traralgon Challenger Forli 2 Challenger Forli 3 Challenger Bengalaru 1 Challenger Roseto Degli Abruzzi 2 Challenger Lille Challenger St. Brieuc Challenger Aguascalientes Challenger Morelos Challenger Tunis Challenger Troisdorf Challenger Poznan Challenger Little Rock Challenger Orlando Challenger Corrientes Challenger Buenos Aires 3 Challenger Malaga Challenger Cali Challenger Porto Challenger Bogota Challenger Iasi Challenger Rome Challenger Tampere Challenger San Benedetto Challenger Meerbusch Challenger Banja Luka Challenger Toulouse Challenger Seville Challenger Cassis Challenger Braga Challenger Charleston Challenger Lisbon Challenger Alicante Challenger Tiburon Challenger St. Tropez Challenger Fairfield Challenger Ambato Challenger Hamburg Challenger Yokohama Challenger Calgary Challenger Matsuyama Challenger Drummondville Challenger Kobe Challenger Yokkaichi Challenger Ottignies-Louvain-la-Neuve Challenger Chennai Challenger Bengaluru Challenger Pune Challenger St. Brieuc Challenger Girona Challenger Madrid Challenger Oeiras 3 Challenger Ostrava Challenger Aix En Provence Challenger Francavilla Challenger Tunis Challenger Oeiras 4 Challenger Troisdorf Challenger Prostejov Challenger Suzhou Challenger Qatar Open - Doha Grand Prix de Tennis de Lyon - Lyon Open 13 - Marseille Qatar Exxon Mobil Open - Doha Open Sabadell Atlantico - Barcelona Estoril Open - Estoril Grand Prix Hassan II - Casablanca Estoril Open - Estoril Qatar ExxonMobil Open - Doha Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Casablanca Open Sabadell Atlantico - Barcelona Estoril Open - Estoril Open de Nice Cote d'Azur - Nice AEGON Championships - London UNICEF Open - 's Hertogenbosch Winston-Salem Open - Winston-Salem Kremlin Cup - Moscow Dubai Duty Free Tennis Championships - Dubai Portugal Open - Oeiras Citi Open - Washington Qatar ExxonMobil Open - Doha Dubai Duty Free Tennis Championships - Dubai Portugal Open - Oeiras Hall of Fame Tennis Championships - Newport Citi Open - Washington Malaysian Open - Kuala Lumpur China Open - Beijing Kremlin Cup - Moscow Valencia Open - Valencia Qatar ExxonMobil Open - Doha Open Sud de France - Montpellier U.S. National Indoor Tennis Championships - Memphis Delray Beach Open - Delray Beach Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Casablanca BRD Nastase Tiriac Trophy - Bucharest Aegon Nottingham Open - Nottingham Hall of Fame Tennis Championships - Newport Claro Open Colombia - Bogota BB&T Atlanta Open - Atlanta Citi Open - Washington Winston-Salem Open - Winston-Salem Kremlin Cup - Moscow Millennium Estoril Open - Estoril Qatar ExxonMobil Open - Doha Garanti Koza Sofia Open - Sofia Memphis Open - Memphis Delray Beach Open - Delray Beach Dubai Duty Free Tennis Championships - Dubai Barcelona Open BancSabadell - Barcelona Millennium Estoril Open - Estoril BMW Open - Munich Mercedes Cup - Stuttgart Gerry Weber Open - Halle Aegon Nottingham Open - Nottingham Citi Open - Washington Winston-Salem Open - Winston-Salem Moselle Open - Metz Shenzhen Open - Shenzhen China Open - Beijing If Stockholm Open - Stockholm Qatar ExxonMobil Open - Doha ASB Classic - Auckland Open Sud de France - Montpellier Open 13 - Marseille Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Marrakech Barcelona Open BancSabadell - Barcelona Millennium Estoril Open - Estoril Mercedes Cup - Stuttgart BB&T Atlanta Open - Atlanta Citi Open - Washington Winston-Salem Open - Winston-Salem Shenzhen Open - Shenzhen China Open - Beijing If Stockholm Open - Stockholm Qatar ExxonMobil Open - Doha Garanti Koza Sofia Open - Sofia Open 13 Provence - Marseille Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Marrakech Barcelona Open BancSabadell - Barcelona Millennium Estoril Open - Estoril TEB BNP Paribas Istanbul Open - Istanbul Ricoh Open - 's-Hertogenbosch Gerry Weber Open - Halle BB&T Atlanta Open - Atlanta Citi Open - Washington Winston-Salem Open - Winston-Salem Chengdu Open - Chengdu China Open - Beijing European Open - Antwerp Kremlin Cup - Moscow Swiss Indoors Basel - Basel Tata Open Maharashtra - Pune Sydney International - Sydney Cordoba Open - Cordoba Argentina Open - Buenos Aires Rio Open - Rio de Janeiro Brasil Open - Sao Paulo Grand Prix Hassan II - Marrakech Barcelona Open Banc Sabadell - Barcelona Millennium Estoril Open - Estoril Swiss Open - Gstaad Citi Open - Washington Qatar ExxonMobil Open - Doha Tata Open Maharashtra - Pune Dubai Duty Free Tennis Championships - Dubai Sofia Open - Sofia Antalya Open - Antalya Murray River Open - Melbourne Open 13 Provence - Marseille Qatar ExxonMobil Open - Doha Abierto Mexicano Telcel - Acapulco Dubai Duty Free Tennis Championships - Dubai Millennium Estoril Open - Estoril Singapore Tennis Open - Singapore Sardegna Open - Cagliari Belgrade 2 - Belgrade Qatar ExxonMobil Open - Doha Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Marrakech Generali Open - Kitzbuhel Dubai Duty Free Tennis Championships - Dubai Millennium Estoril Open - Estoril Great Britain F8 Spain F30 Sony Open Tennis - Miami Rogers Cup - Toronto Western & Southern Open - Cincinnati Shanghai Rolex Masters - Shanghai BNP Paribas Open - Indian Wells Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Miami Open - Miami Internazionali BNL d'Italia - Rome Western & Southern Open - Cincinnati BNP Paribas Masters - Paris BNP Paribas Open - Indian Wells Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Western & Southern Open - Cincinnati Shanghai Rolex Masters - Shanghai Internazionali BNL d'Italia - Rome Rogers Cup - Toronto Western & Southern Open - Cincinnati BNP Paribas Masters - Paris BNP Paribas Open - Indian Wells Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Coupe Rogers - Montreal Miami Open - Miami Davis Cup, Group 2, PO, LAT-TUN 3-2 Australian Open - Melbourne U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Australian Open Qualifying - Doha Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne Wimbledon - London Australian Open - Melbourne French Open - Paris Davis Cup, Group 2, 2R, POR-TUN 4-1 Davis Cup, Group 2, PO, SLO-TUN 4-1 Meknes Challenger Davis Cup, Group II, 1R, GBR-TUN 4-1 Davis Cup, Group II, PO, IRL-TUN 3-2 Davis Cup, Group II, PO, TUN-BLR 2-3 Davis Cup, Group I, 1R, SLO-POR 3-2 Davis Cup, Group I, PO, RUS-POR 4-1 Davis Cup, Group II, 2R, POR-FIN 4-1 Davis Cup, Group II, 1R, BIH-TUN 3-1 Davis Cup, Group II, PO, TUN-BUL 3-2 Davis Cup, Group I, 1R, POR-ISR 5-0 Davis Cup, Group II, 1R, TUN-SWE 2-3 Davis Cup, Group II, PO, CYP-TUN 1-4 Davis Cup, Group II, 1R, TUN-FIN 2-3 Davis Cup, Group II, PO, EST-TUN 3-2 Davis Cup, World Group I, PO, LTU-POR 0-4 Davis Cup, World Group II, PO, GUA-TUN 1-3 Davis Cup, Group I, PO, TUN-BIH 1-3 All Lower level tournaments Augsburg Challenger Porto Challenger Wimbledon (juniors) U.S. Open (juniors) Australian Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) Olympics - London Olympics - Rio de Janeiro Davis Cup, Group II, 1R, POR-MAR 4-1